// 数据请求，二次封装
import axios from "axios";

// 开发环境       测试环境        生产环境
// localhost,ip  npm run build  npm run build
// development    production
// process.env 是node中返回环境的对象
// NODE_ENV 是 webpack 进行设置的

const isDev = process.env.NODE_ENV == "development";

// 自定义 axios
const request = axios.create({
  baseURL: isDev
    ? "http://121.89.205.189:3001/api"
    : "http://121.89.205.189:3001/api",
  timeout: 6000,
});

// 请求拦截器
request.interceptors.request.use(
  (config) => {
    config.headers.token = localStorage.getItem("token");
    // console.log(config);
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
request.interceptors.response.use(
  (response) => {
    // console.log(response);
    if (response.data.code === "10119") {
      // 后端校验登录状态 失败，需要跳转至 登录页面
      router.push("/login");
      return response;
    }
    return response.data;
  },
  (error) => {
    return Promise.reject(error);
  }
);

export default request; // 默认暴露方式，可以自定义名称，引入模块不带大括号,比如:import { request } from "../utils/request";
// export { request };// 统一暴露，两边都要带大括号，
